<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<meta name="generator" content="ApiGen 2.7.0" />
	<meta name="robots" content="noindex" />

	<title>File lib/php/mekayotl/tools/Upload.php | nort</title>

	<script type="text/javascript" src="resources/combined.js?1481722677"></script>
	<script type="text/javascript" src="elementlist.js?1094816827"></script>
	<link rel="stylesheet" type="text/css" media="all" href="resources/style.css?1567499433" />

</head>

<body>
<div id="left">
	<div id="menu">
		<a href="index.html" title="Overview"><span>Overview</span></a>


		<div id="groups">
			<h3>Packages</h3>
			<ul>
				<li><a href="package-App.html">App<span></span></a>
						<ul>
				<li><a href="package-App.Saas.html">Saas</a>
						</li>
				<li><a href="package-App.saas.html">saas</a>
						</li>
				<li><a href="package-App.SaaS.html">SaaS<span></span></a>
						<ul>
				<li><a href="package-App.saas.Logic.html">Logic</a>
						</li>
				<li><a href="package-App.SaaS.SaaS.html">SaaS</a>
						</li>
				<li><a href="package-App.Saas.Tables.html">Tables</a>
						</li>
				<li><a href="package-App.Saas.Vo.html">Vo</a>
						</li>
							</ul></li></ul></li>
				<li><a href="package-aqua.html">aqua<span></span></a>
						<ul>
				<li><a href="package-aqua.tools.html">tools<span></span></a>
						<ul>
				<li><a href="package-aqua.tools.Monitor.html">Monitor</a>
						</li>
							</ul></li></ul></li>
				<li><a href="package-flashservices.html">flashservices<span></span></a>
						<ul>
				<li><a href="package-flashservices.adapters.html">adapters</a>
						</li>
				<li><a href="package-flashservices.debug.html">debug</a>
						</li>
				<li><a href="package-flashservices.exception.html">exception</a>
						</li>
				<li><a href="package-flashservices.filters.html">filters</a>
						</li>
				<li><a href="package-flashservices.io.html">io</a>
						</li>
				<li><a href="package-flashservices.sql.html">sql</a>
						</li>
				<li><a href="package-flashservices.util.html">util</a>
						</li>
							</ul></li>
				<li class="active"><a href="package-Mekayotl.html">Mekayotl<span></span></a>
						<ul>
				<li><a href="package-Mekayotl.core.html">core</a>
						</li>
				<li><a href="package-Mekayotl.database.html">database<span></span></a>
						<ul>
				<li><a href="package-Mekayotl.database.dal.html">dal</a>
						</li>
				<li><a href="package-Mekayotl.database.mysql.html">mysql</a>
						</li>
				<li><a href="package-Mekayotl.database.sqlite.html">sqlite</a>
						</li>
							</ul></li>
				<li class="active"><a href="package-Mekayotl.tools.html">tools<span></span></a>
						<ul>
				<li><a href="package-Mekayotl.tools.render.html">render<span></span></a>
						<ul>
				<li><a href="package-Mekayotl.tools.render.html.html">html</a>
						</li>
							</ul></li>
				<li><a href="package-Mekayotl.tools.renders.html">renders</a>
						</li>
							</ul></li></ul></li>
				<li><a href="package-None.html">None</a>
						</li>
				<li><a href="package-PHP.html">PHP</a>
						</li>
				<li><a href="package-PHPMailer.html">PHPMailer</a>
						</li>
				<li><a href="package-Services.html">Services<span></span></a>
						<ul>
				<li><a href="package-Services.JSON.html">JSON</a>
						</li>
							</ul></li>
				<li><a href="package-Swift.html">Swift<span></span></a>
						<ul>
				<li><a href="package-Swift.ByteStream.html">ByteStream</a>
						</li>
				<li><a href="package-Swift.CharacterStream.html">CharacterStream</a>
						</li>
				<li><a href="package-Swift.Encoder.html">Encoder</a>
						</li>
				<li><a href="package-Swift.Events.html">Events</a>
						</li>
				<li><a href="package-Swift.KeyCache.html">KeyCache</a>
						</li>
				<li><a href="package-Swift.Mailer.html">Mailer</a>
						</li>
				<li><a href="package-Swift.Mime.html">Mime</a>
						</li>
				<li><a href="package-Swift.Plugins.html">Plugins</a>
						</li>
				<li><a href="package-Swift.Transport.html">Transport</a>
						</li>
							</ul></li>
			</ul>
		</div>

		<hr />


		<div id="elements">
			<h3>Classes</h3>
			<ul>
				<li><a href="class-Mekayotl_tools_Acl.html">Mekayotl_tools_Acl</a></li>
				<li><a href="class-Mekayotl_tools_CountryData.html">Mekayotl_tools_CountryData</a></li>
				<li><a href="class-Mekayotl_tools_Image.html">Mekayotl_tools_Image</a></li>
				<li><a href="class-Mekayotl_tools_Mailer.html">Mekayotl_tools_Mailer</a></li>
				<li><a href="class-Mekayotl_tools_Request.html">Mekayotl_tools_Request</a></li>
				<li><a href="class-Mekayotl_tools_Security.html">Mekayotl_tools_Security</a></li>
				<li class="active"><a href="class-Mekayotl_tools_Upload.html">Mekayotl_tools_Upload</a></li>
				<li><a href="class-Mekayotl_tools_Utils.html">Mekayotl_tools_Utils</a></li>
				<li><a href="class-Mekayotl_tools_utils_Conversion.html">Mekayotl_tools_utils_Conversion</a></li>
				<li><a href="class-Mekayotl_tools_utils_Numbers.html">Mekayotl_tools_utils_Numbers</a></li>
				<li><a href="class-Mekayotl_tools_Views.html">Mekayotl_tools_Views</a></li>
			</ul>





		</div>
	</div>
</div>

<div id="splitter"></div>

<div id="right">
<div id="rightInner">
	<form id="search">
		<input type="hidden" name="cx" value="" />
		<input type="hidden" name="ie" value="UTF-8" />
		<input type="text" name="q" class="text" />
		<input type="submit" value="Search" />
	</form>

	<div id="navigation">
		<ul>
			<li>
				<a href="index.html" title="Overview"><span>Overview</span></a>
			</li>
			<li>
				<a href="package-Mekayotl.tools.html" title="Summary of Mekayotl\tools"><span>Package</span></a>
			</li>
			<li>
				<a href="class-Mekayotl_tools_Upload.html" title="Summary of Mekayotl_tools_Upload"><span>Class</span></a>
			</li>
		</ul>
		<ul>
			<li>
				<a href="tree.html" title="Tree view of classes, interfaces, traits and exceptions"><span>Tree</span></a>
			</li>
		</ul>
		<ul>
		</ul>
	</div>

<pre><code><a href="#1" id="1" class="l">  1: </a><span class="xlang">&lt;?php</span>
<a href="#2" id="2" class="l">  2: </a><span class="php-comment">//namespace core\tools;</span>
<a href="#3" id="3" class="l">  3: </a><span class="php-comment">/**
</span><a href="#4" id="4" class="l">  4: </a><span class="php-comment"> * Herramienta para manipulacion de imagenes.
</span><a href="#5" id="5" class="l">  5: </a><span class="php-comment"> *
</span><a href="#6" id="6" class="l">  6: </a><span class="php-comment"> * @author Henry I. Galvez T. &lt;alograg@alograg.me&gt;
</span><a href="#7" id="7" class="l">  7: </a><span class="php-comment"> * @copyright Copyright (c) 2008, {@link http://www.aquainteractive.com Aqua
</span><a href="#8" id="8" class="l">  8: </a><span class="php-comment"> * Interactive}
</span><a href="#9" id="9" class="l">  9: </a><span class="php-comment"> * @package Mekayotl
</span><a href="#10" id="10" class="l"> 10: </a><span class="php-comment"> * @since 2011-03-01
</span><a href="#11" id="11" class="l"> 11: </a><span class="php-comment"> * @subpackage tools
</span><a href="#12" id="12" class="l"> 12: </a><span class="php-comment"> * @version $Id$
</span><a href="#13" id="13" class="l"> 13: </a><span class="php-comment"> */</span>
<a href="#14" id="14" class="l"> 14: </a><span class="php-comment">/**
</span><a href="#15" id="15" class="l"> 15: </a><span class="php-comment"> * Cambia el tamaño máximo para carga de archivos
</span><a href="#16" id="16" class="l"> 16: </a><span class="php-comment"> */</span>
<a href="#17" id="17" class="l"> 17: </a><span class="php-keyword2">ini_set</span>(<span class="php-quote">'upload_max_filesize'</span>, <span class="php-quote">'2000M'</span>);
<a href="#18" id="18" class="l"> 18: </a>
<a href="#19" id="19" class="l"> 19: </a><span class="php-comment">/**
</span><a href="#20" id="20" class="l"> 20: </a><span class="php-comment"> * Esta clase le da un proceso a las imagen original con respecto al URL de
</span><a href="#21" id="21" class="l"> 21: </a><span class="php-comment"> * salida.
</span><a href="#22" id="22" class="l"> 22: </a><span class="php-comment"> *
</span><a href="#23" id="23" class="l"> 23: </a><span class="php-comment"> * @package Mekayotl
</span><a href="#24" id="24" class="l"> 24: </a><span class="php-comment"> * @subpackage tools
</span><a href="#25" id="25" class="l"> 25: </a><span class="php-comment"> */</span>
<a href="#26" id="26" class="l"> 26: </a><span class="php-keyword1">class</span> Mekayotl_tools_Upload
<a href="#27" id="27" class="l"> 27: </a>{
<a href="#28" id="28" class="l"> 28: </a>    <span class="php-comment">/**#@+
</span><a href="#29" id="29" class="l"> 29: </a><span class="php-comment">     * @access private
</span><a href="#30" id="30" class="l"> 30: </a><span class="php-comment">     * @static
</span><a href="#31" id="31" class="l"> 31: </a><span class="php-comment">     */</span>
<a href="#32" id="32" class="l"> 32: </a>
<a href="#33" id="33" class="l"> 33: </a>    <span class="php-comment">/**
</span><a href="#34" id="34" class="l"> 34: </a><span class="php-comment">     * Contiene el directorio base para archivos
</span><a href="#35" id="35" class="l"> 35: </a><span class="php-comment">     * @var string
</span><a href="#36" id="36" class="l"> 36: </a><span class="php-comment">     */</span>
<a href="#37" id="37" class="l"> 37: </a>
<a href="#38" id="38" class="l"> 38: </a>    <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-var">$directory</span>;
<a href="#39" id="39" class="l"> 39: </a>    <span class="php-comment">/**
</span><a href="#40" id="40" class="l"> 40: </a><span class="php-comment">     * Contiene la ultima manipulación de archivos
</span><a href="#41" id="41" class="l"> 41: </a><span class="php-comment">     * @var array Un arreglo asociativo
</span><a href="#42" id="42" class="l"> 42: </a><span class="php-comment">     */</span>
<a href="#43" id="43" class="l"> 43: </a>    <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-var">$last</span> = <span class="php-keyword1">array</span>();
<a href="#44" id="44" class="l"> 44: </a>    <span class="php-comment">/**
</span><a href="#45" id="45" class="l"> 45: </a><span class="php-comment">     * Contiene un historial de los movimientos de archivos
</span><a href="#46" id="46" class="l"> 46: </a><span class="php-comment">     * @var array
</span><a href="#47" id="47" class="l"> 47: </a><span class="php-comment">     */</span>
<a href="#48" id="48" class="l"> 48: </a>    <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-var">$history</span> = <span class="php-keyword1">array</span>();
<a href="#49" id="49" class="l"> 49: </a>    <span class="php-comment">/**
</span><a href="#50" id="50" class="l"> 50: </a><span class="php-comment">     * Manipula el destino de un archivo cargado
</span><a href="#51" id="51" class="l"> 51: </a><span class="php-comment">     * @param array $oFile El arreglo asociativo con información del archivo
</span><a href="#52" id="52" class="l"> 52: </a><span class="php-comment">     * cargado
</span><a href="#53" id="53" class="l"> 53: </a><span class="php-comment">     * @param string $sDestination El destino del archivo
</span><a href="#54" id="54" class="l"> 54: </a><span class="php-comment">     * @param boolean|string $originalName Si mantiene el nombre original o
</span><a href="#55" id="55" class="l"> 55: </a><span class="php-comment">     * string con el nuevo nombre
</span><a href="#56" id="56" class="l"> 56: </a><span class="php-comment">     * @param boolean $move Si el archivo tiene que ser movido o copiado
</span><a href="#57" id="57" class="l"> 57: </a><span class="php-comment">     * @return array El arreglo asociativo con la ultima información de
</span><a href="#58" id="58" class="l"> 58: </a><span class="php-comment">     * movimiento
</span><a href="#59" id="59" class="l"> 59: </a><span class="php-comment">     */</span>
<a href="#60" id="60" class="l"> 60: </a>
<a href="#61" id="61" class="l"> 61: </a>    <span class="php-keyword1">public</span> <span class="php-keyword1">static</span> <span class="php-keyword1">function</span> processFile(<span class="php-var">$oFile</span>, <span class="php-var">$sDestination</span> = <span class="php-keyword1">NULL</span>,
<a href="#62" id="62" class="l"> 62: </a>            <span class="php-var">$originalName</span> = <span class="php-keyword1">TRUE</span>, <span class="php-var">$move</span> = <span class="php-keyword1">TRUE</span>)
<a href="#63" id="63" class="l"> 63: </a>    {
<a href="#64" id="64" class="l"> 64: </a>        <span class="php-keyword1">if</span> (!Mekayotl_tools_Security::hasSession()) {
<a href="#65" id="65" class="l"> 65: </a>            <span class="php-keyword1">return</span> <span class="php-quote">'Error: No login'</span>;
<a href="#66" id="66" class="l"> 66: </a>        }
<a href="#67" id="67" class="l"> 67: </a>        <span class="php-var">$sDestination</span> = self::<span class="php-var">$directory</span> . <span class="php-var">$sDestination</span>;
<a href="#68" id="68" class="l"> 68: </a>        <span class="php-var">$aName</span> = <span class="php-keyword2">pathinfo</span>(<span class="php-var">$oFile</span>[<span class="php-quote">'name'</span>]);
<a href="#69" id="69" class="l"> 69: </a>        <span class="php-var">$sExtention</span> = <span class="php-keyword2">strtolower</span>(<span class="php-var">$aName</span>[<span class="php-quote">'extension'</span>]);
<a href="#70" id="70" class="l"> 70: </a>        self::<span class="php-var">$last</span>[<span class="php-quote">'original'</span>] = <span class="php-var">$oFile</span>;
<a href="#71" id="71" class="l"> 71: </a>        <span class="php-keyword1">if</span> (<span class="php-var">$originalName</span> === <span class="php-keyword1">TRUE</span>) {
<a href="#72" id="72" class="l"> 72: </a>            self::<span class="php-var">$last</span>[<span class="php-quote">'path'</span>] = <span class="php-var">$sDestination</span> . <span class="php-quote">'/'</span> . <span class="php-var">$oFile</span>[<span class="php-quote">'name'</span>];
<a href="#73" id="73" class="l"> 73: </a>        } <span class="php-keyword1">else</span> {
<a href="#74" id="74" class="l"> 74: </a>            self::<span class="php-var">$last</span>[<span class="php-quote">'path'</span>] = <span class="php-var">$sDestination</span> . <span class="php-quote">'/'</span>
<a href="#75" id="75" class="l"> 75: </a>                    . <span class="php-keyword2">strtolower</span>(<span class="php-var">$originalName</span> . <span class="php-quote">'.'</span> . <span class="php-var">$sExtention</span>);
<a href="#76" id="76" class="l"> 76: </a>        }
<a href="#77" id="77" class="l"> 77: </a>        <span class="php-keyword1">if</span> (<span class="php-keyword2">is_file</span>(self::<span class="php-var">$last</span>[<span class="php-quote">'path'</span>])) {
<a href="#78" id="78" class="l"> 78: </a>            @<span class="php-keyword2">unlink</span>(self::<span class="php-var">$last</span>[<span class="php-quote">'path'</span>]);
<a href="#79" id="79" class="l"> 79: </a>        }
<a href="#80" id="80" class="l"> 80: </a>        <span class="php-keyword1">if</span> (!<span class="php-keyword2">is_dir</span>(<span class="php-keyword2">dirname</span>(self::<span class="php-var">$last</span>[<span class="php-quote">'path'</span>]))) {
<a href="#81" id="81" class="l"> 81: </a>            Mekayotl::generatePath(self::<span class="php-var">$last</span>[<span class="php-quote">'path'</span>]);
<a href="#82" id="82" class="l"> 82: </a>        }
<a href="#83" id="83" class="l"> 83: </a>        <span class="php-keyword1">if</span> (<span class="php-var">$move</span>) {
<a href="#84" id="84" class="l"> 84: </a>            self::<span class="php-var">$last</span>[<span class="php-quote">'upload'</span>] = <span class="php-keyword2">move_uploaded_file</span>(<span class="php-var">$oFile</span>[<span class="php-quote">'tmp_name'</span>],
<a href="#85" id="85" class="l"> 85: </a>                    self::<span class="php-var">$last</span>[<span class="php-quote">'path'</span>]);
<a href="#86" id="86" class="l"> 86: </a>        } <span class="php-keyword1">else</span> {
<a href="#87" id="87" class="l"> 87: </a>            self::<span class="php-var">$last</span>[<span class="php-quote">'upload'</span>] = <span class="php-keyword2">copy</span>(<span class="php-var">$oFile</span>[<span class="php-quote">'tmp_name'</span>],
<a href="#88" id="88" class="l"> 88: </a>                    self::<span class="php-var">$last</span>[<span class="php-quote">'path'</span>]);
<a href="#89" id="89" class="l"> 89: </a>        }
<a href="#90" id="90" class="l"> 90: </a>        self::<span class="php-var">$history</span>[] = self::<span class="php-var">$last</span>;
<a href="#91" id="91" class="l"> 91: </a>        <span class="php-var">$logUpload</span> = <span class="php-keyword2">json_encode</span>(self::<span class="php-var">$last</span>[<span class="php-quote">'upload'</span>]) . <span class="php-quote">' '</span>
<a href="#92" id="92" class="l"> 92: </a>                . <span class="php-keyword2">json_encode</span>(self::<span class="php-var">$last</span>[<span class="php-quote">'original'</span>]) . <span class="php-quote">&quot; &quot;</span>
<a href="#93" id="93" class="l"> 93: </a>                . ((<span class="php-var">$move</span>) ? <span class="php-quote">'move'</span> : <span class="php-quote">'copy'</span>) . <span class="php-quote">&quot; to &quot;</span> . self::<span class="php-var">$last</span>[<span class="php-quote">'path'</span>];
<a href="#94" id="94" class="l"> 94: </a>        <span class="php-keyword1">return</span> self::<span class="php-var">$last</span>;
<a href="#95" id="95" class="l"> 95: </a>    }
<a href="#96" id="96" class="l"> 96: </a>
<a href="#97" id="97" class="l"> 97: </a>    <span class="php-comment">/**#@-*/</span>
<a href="#98" id="98" class="l"> 98: </a>    <span class="php-comment">/**
</span><a href="#99" id="99" class="l"> 99: </a><span class="php-comment">     * Crea un objeto independiente para automatizar el movimiento de archivos
</span><a href="#100" id="100" class="l">100: </a><span class="php-comment">     * con parámetros
</span><a href="#101" id="101" class="l">101: </a><span class="php-comment">     * @param boolean $bAuto Si debe procesar automáticamente los archivos
</span><a href="#102" id="102" class="l">102: </a><span class="php-comment">     * @access public
</span><a href="#103" id="103" class="l">103: </a><span class="php-comment">     */</span>
<a href="#104" id="104" class="l">104: </a>
<a href="#105" id="105" class="l">105: </a>    <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> __construct(<span class="php-var">$bAuto</span>)
<a href="#106" id="106" class="l">106: </a>    {
<a href="#107" id="107" class="l">107: </a>        <span class="php-keyword1">if</span> (<span class="php-keyword1">isset</span>(<span class="php-var">$_FILES</span>) &amp;&amp; <span class="php-var">$bAuto</span>) {
<a href="#108" id="108" class="l">108: </a>            <span class="php-keyword1">foreach</span> (<span class="php-var">$_FILES</span> <span class="php-keyword1">as</span> <span class="php-var">$field</span> =&gt; <span class="php-var">$value</span>) {
<a href="#109" id="109" class="l">109: </a>                self::processFile(<span class="php-var">$value</span>, <span class="php-keyword1">FALSE</span>, <span class="php-var">$_REQUEST</span>[<span class="php-quote">'name'</span>], <span class="php-var">$_REQUEST</span>);
<a href="#110" id="110" class="l">110: </a>            }
<a href="#111" id="111" class="l">111: </a>        }
<a href="#112" id="112" class="l">112: </a>    }
<a href="#113" id="113" class="l">113: </a>
<a href="#114" id="114" class="l">114: </a>}
<a href="#115" id="115" class="l">115: </a>
<a href="#116" id="116" class="l">116: </a><span class="php-keyword1">if</span> (!MEDIA_PATH) {
<a href="#117" id="117" class="l">117: </a>    Mekayotl_tools_Upload::<span class="php-var">$directory</span> = PUBLIC_PATH . <span class="php-quote">'/medias'</span>;
<a href="#118" id="118" class="l">118: </a>    Mekayotl::generatePath(Mekayotl_tools_Upload::<span class="php-var">$directory</span>);
<a href="#119" id="119" class="l">119: </a>} <span class="php-keyword1">else</span> {
<a href="#120" id="120" class="l">120: </a>    Mekayotl_tools_Upload::<span class="php-var">$directory</span> = MEDIA_PATH;
<a href="#121" id="121" class="l">121: </a>}
<a href="#122" id="122" class="l">122: </a></code></pre>

	<div id="footer">
		nort API documentation generated by <a href="http://apigen.org">ApiGen 2.7.0</a>
	</div>
</div>
</div>
</body>
</html>
